package com.hlkj.pay.service.pay;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.pojo.PageResult;
import com.hlkj.pay.enums.PayEnums;
import com.hlkj.pay.dto.pay.PayWayQueryDto;
import com.hlkj.pay.infrastructure.model.pay.PayWayDO;

import java.util.List;
/**
 * @author HlpayTeam
 * @date 2024/09/23 11:22
 */
public interface IPayWayService {
	/**
	 * page query
	 * @param payWayQueryDto
	 * @return
	 */
	PageResult<PayWayDO> queryPage(PayWayQueryDto payWayQueryDto);
	/**
	 * query all
	 * @param payWayQueryDto
	 * @return
	 */
	List<PayWayDO> queryList(PayWayQueryDto payWayQueryDto);
	/**
	 * detail
	 * @param id
	 * @return
	 */
	PayWayDO detail(Long id);
	/**
	 * detail
	 * @param code
	 * @return
	 */
	PayWayDO queryByCode(String code);
	/**
	 * detail
	 * @param codes
	 * @return
	 */
	List<PayWayDO> queryByCodes(List<String> codes);
	/**
	 * detail
	 * @param name
	 * @return
	 */
	PayWayDO queryByName(String name);
	/**
	 * save
	 * @param detail
	 */
	void save(PayWayDO detail);
	/**
	 * update
	 * @param detail
	 */
	void update(PayWayDO detail);
	/**
	 * del
	 * @param id
	 */
	void del(String code);
	/**
	 * update status
	 * @param id
	 * @param status
	 */
	void updatePayWayStatus(String code, Integer status);
	/**
	 *
	 * @param payType
	 * @param scenePayType
	 * @return
	 */
	PayWayDO queryByType(Integer payType, PayEnums.SCENE_PAY_TYPE scenePayType,Integer sceneType);
}
